home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload Trio 2 / Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO / dir38 / blnks415.zip / BLANKS.DOC < prev    next >
Text File  |  1993-12-01  |  60KB  |  1,280 lines

  1.         ╒══════════════════════════════════════════╕
  2.         │                 BLANKs                   │
  3.         │             Revision 4.15.0              │
  4.         │                                          │
  5.         │ Copyright (C) 1988-1993 FM de Monasterio │
  6.         │  Licensed Material. All Rights Reserved  │
  7.         ╘══════════════════════════════════════════╛
  8.  
  9.    CONTENTS
  10.             1.  SUMMARY
  11.             2.  REGISTRATION
  12.             3.  PROGRAM INFORMATION
  13.             4.  INSTALLATION & USAGE
  14.             5.  INSTALLATION IN UPPER MEMORY
  15.             6.  TECHNICAL INFORMATION
  16.             7.  OPERATION REQUIREMENTS & CONFLICTS
  17.             8.  COPYRIGHT & LICENSE INFORMATION
  18.             9.  DISTRIBUTION TERMS
  19.    1.  SUMMARY
  20.  
  21.    BLANKs is a DOS-based, resident utility which blanks the screen after a
  22.    selectable time interval without keyboard, mouse, or video activity; an
  23.    interval as short as 1 minute or as long as 60 minutes can be selected.
  24.    Selecting 0 minutes disables the timed screen blanking.
  25.  
  26.    BLANKs also provides options for parking the hard disk(s) upon blanking
  27.    of the screen; for manual screen blanking if a (user-defined) hotkey is
  28.    pressed or a (user-defined) mouse button is clicked and the mouse is at
  29.    a (user-defined) corner of the screen; and for the use of a password to
  30.    unblank the (manually blanked) screen. See BLANKS.NEW for a description
  31.    of what is new in the current version.
  32.  
  33.    BLANKs is a (terminate-and-stay) resident program which can be executed
  34.    repeatedly to change its parameters without yielding multiple copies to
  35.    memory. It consists of a resident component, that contains the code for
  36.    video blanking/unblanking and for parking the disk, which occupies less
  37.    than 1 KB of RAM, and a non-resident component, that loads the resident
  38.    component, communicates with the resident on further program executions
  39.    and provides other ancillary video services.
  40.  
  41.    BLANKs requires MS-DOS version 3 or higher, or a compatible DOS system.
  42.    Although not compatible with WINDOWS, BLANKs can be configured to avoid
  43.    conflicts with WINDOWS 3+ (Standard or Enhanced Mode).
  44.  
  45.  
  46.  
  47.    2. REGISTRATION
  48.  
  49.    This software is user-supported; the present release, although lacking the
  50.    options marked by asterisks below, is a usable program.  You may test this
  51.    release for (in)compatibilities with your system, but after the testing is
  52.    completed you are requested to order a registered copy of the full release
  53.    of the software from the address at the end of this documentation.
  54.  
  55.    If you would rather use this unregistered copy, consider making a donation
  56.    to the Children's Hospital of Washington DC, for indigent children in need
  57.    of medical care.  Every year in the USA, infant mortality claims the lives
  58.    of tens of thousands of children before their first year of life, and most
  59.    of them come from families below poverty level...  Please send to the same
  60.    address a check payable to the "PATIENT CARE FUND, CHILDREN'S HOSPITAL" on
  61.    the obverse, and marked "For Deposit Only" on the reverse.  Donations will
  62.    be sent to Children's Hospital.  Please identify the program for which you
  63.    are making the donation.
  64.  
  65.       ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  66.       BLANKS.REG contains a form needed to register the Software
  67.       ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  68.  
  69.    See the final part of this documentation for information on the Licensing,
  70.    Distribution, and Limited Warranty of this software.
  71.  
  72.  
  73.  
  74.    3.  PROGRAM INFORMATION
  75.  
  76.    BLANKs is a DOS-based program that, after its loading, remains in memory
  77.    until receiving a command to uninstall itself or the machine is rebooted
  78.    (terminate-and-stay-resident). It blanks the screen after a user-defined
  79.    time interval has elapsed without keyboard, mouse, or video activity; an
  80.    interval between 1 minute and 60 minutes can be selected. A selection of
  81.    0 minutes disables the timed screen blanking.
  82.  
  83.    Once blanking has occurred, pressing any key unblanks the screen, unless
  84.    the password-mediated unblanking is enabled (see below), in which case a
  85.    user-defined password needs to be typed for the unblanking to occur.
  86.  
  87.    BLANKs can be executed repeatedly to modify resident parameters, without
  88.    resulting in multiple copies to memory.  The resident component requires
  89.    about 1.0 KB of memory.  BLANKs parameters can be specified from the DOS
  90.    command line or with the DOS environment variable 'BLANKS=' (see below).
  91.  
  92.  
  93.    BLANKING METHOD
  94.  
  95.    BLANKs supports dual video subsystems, e.g., a VGA color (primary) and a
  96.    HERCULES monochrome (secondary) adapter.  Subsystems can be reconfigured
  97.    separately by the user via switches V1 (primary) and V2 (secondary).
  98.  
  99.    The video blanking is obtained by direct commands to the hardware (video
  100.    controller) to turn off/on the video signal.  This is a fast method that
  101.    operates successfully in the IBM PC/XT, PC/AT and in most IBM compatible
  102.    computers installed with MDA, CGA, EGA, VGA, and HERCULES video adapters
  103.    or with IBM-compatible adapters from other manufacturers.  Actually, the
  104.    blanking/unblanking of the video signal was used by the original PC BIOS
  105.    during some CGA video services.
  106.  
  107.    Starting with release 3.34, however, the blanking of HERCULES cards HGC,
  108.    HGC+, and InColor, uses a zero-row display method, kindly made available
  109.    by E.C. Raedecker, which preserves the current video mode (text or 720 x
  110.    348 graphics), except during CGA emulation (see switch V1).
  111.  
  112.  
  113.    CPU VERSIONS
  114.  
  115.    The program is written in assembly language; each version consists of four
  116.    processor-type releases (086, 268, 386 and 486) in which the code has been
  117.    optimized for the CPU types of the 80x86 processor family.  This is needed
  118.    since the x86 processors differ markedly in instruction execution time and
  119.    the incorporation of a memory cache in some CPU types affects such time by
  120.    influencing the speed of instruction fetching and of memory access.  A 486
  121.    release should be used with a 586 CPU (Pentium) to minimize degradation of
  122.    performance vis-á-vis code alignment.
  123.  
  124.    In addition to standard (086) assembly language instructions, the 286, 386
  125.    and 486 releases of the program also use 286-, 386- or 486-specific opcode
  126.    instructions in "real" mode (which is the native mode for 086 processors).
  127.    The type and degree of code optimization vary with the CPU type, and yield
  128.    relatively small differences in the resident size, which is less than 1000
  129.    bytes.
  130.  
  131.  
  132.    REQUIREMENTS
  133.  
  134.    The program requires MS-DOS version 3 or later (or compatible DOS system)
  135.    and an IBM-compatible SVGA, VGA, EGA, MCGA/CGA, or MDA video adapter or a
  136.    HERCULES video card.
  137.  
  138.  
  139.    SAFETY MEASURES
  140.  
  141.    Each time it is executed, the program verifies its code integrity through
  142.    a number of cyclic redundancy checks (CRCs). Program execution is aborted
  143.    if any check were to fail as such a failure indicates code corruption and
  144.    the program should not be used for your own protection.
  145.  
  146.    The executable program is distributed as a fully encrypted and compressed
  147.    EXE-type file in order to reduce the possibility of code tampering.
  148.  
  149.    NOTE    --------------------------------------------------------------------
  150.     Because both encryption and compression change the code sequences to
  151.     different values, it cannot be excluded that these processess might,
  152.     by chance, yield an encrypted data sequence which triggers a warning
  153.     from antiviral utilities that merely check disk-stored files against
  154.     a list of code 'signatures' or instructions. Though all distribution
  155.     diskettes are scanned with one such utility to avoid the possibility
  156.         of spurious warnings, the changing nature of these 'signature' lists
  157.         makes this exclusion difficult.
  158.  
  159.     If using these utilities, check the registered distribution diskette
  160.     before installing the programs in your hard disk, and please contact
  161.     the vendor (see below) if a spurious warning were triggered.
  162.     --------------------------------------------------------------------
  163.  
  164.  
  165.  
  166.    4.  INSTALLATION & USAGE
  167.  
  168.    In the descriptions below, {} enclose context variables, e.g., the number
  169.    {n}, whereas <> enclose alphanumeric characters or keys, e.g., the letter
  170.    <n>.
  171.  
  172.    The enclosed utility INSTALL.EXE may be used to copy the program files to
  173.    a user-defined drive and directory, and--if so desired--to add statements
  174.    to the file AUTOEXEC.BAT so that the program is loaded automatically upon
  175.    booting and to append the user-defined directory to the PATH statement.
  176.  
  177.  
  178.    MANUAL INSTALLATION
  179.  
  180.    Alternatively, to install the program manually, add the command
  181.  
  182.         {path}BLANKS [/SWITCH1 ... /SWITCHn] [;comments]
  183.  
  184.    to the AUTOEXEC.BAT file, if you wish to have the program installed after
  185.    booting the system, or simply enter this command from the DOS prompt when
  186.    you want to use the program.  If given, {path} must specify the drive and
  187.    subdirectory for the file BLANKS.EXE.
  188.  
  189.    Square brackets enclose optional command arguments; [/SWITCH1.../SWITCHn]
  190.    are program command switches, whereas [;comments] are comments that might
  191.    be useful to clarify batch file usage.
  192.  
  193.    If executed with a null argument (i.e., switches were not specified), the
  194.    program searches the DOS environment block for a variable with the format
  195.    BLANKS=/SWITCH1.../SWITCHn, to use such switches as program commands (see
  196.    switch EV below).
  197.  
  198.    If the execution command has null arguments, an environment variable does
  199.    not exist, and the resident is not yet installed, then the default (i.e.,
  200.    preselected) configuration is used for the installation.  If the resident
  201.    is already installed, and an environment variable does not exist, a null-
  202.    argument command has no other effects than updating the resident in terms
  203.    of the video system (except if switch V1 or V2, or both, were specified).
  204.    The default cases of the various switches are given below.
  205.  
  206.    Once installed, the resident can be modified at any time by executing the
  207.    program with new parameters.  If other memory-resident programs were also
  208.    used, make sure all residents installed are 'well behaved' and pass along
  209.    the necessary interrupt data (see 'OPERATION REQUIREMENTS & CONFLICTS').
  210.  
  211.  
  212.    COMMAND SWITCHES
  213.  
  214.    These switches allow for the modification of the default (preselected) or
  215.    of an already selected resident configuration, or the execution of one of
  216.    the non-resident services provided by the program (e.g. display of a Help
  217.    panel, adjustment of display brightness, etc).
  218.  
  219.    The switches can be specified in any order, and they must be separated by
  220.    a space, tab, comma, or slash; a dash preceded by space may also be used.
  221.    Switches are not case sensitive, e.g., PW = Pw = pW = pw.  Invalid switch
  222.    specifications may result in an error message or in program cancellation.
  223.    Some switches have preset ('default') values which are used if new values
  224.    were not specified.
  225.  
  226.    Most switches consist of 2 letters; with few exceptions, it is sufficient
  227.    to specify the first letter to select such switch.  The following command
  228.    switches are recognized:
  229.  
  230.     ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  231.     Asterisks mark switches unavailable in the unregistered copy
  232.     ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  233.  
  234.  
  235.    SWITCH ?
  236.    ~~~~~~~~
  237.    This switch displays the Status/Usage/Help panels, which are described in
  238.    more detail in the section below.  If a VGA or EGA is the active adapter,
  239.    the program saves the contents of the palette registers prior to changing
  240.    the video attributes for its various displays. See section 'STATUS/USAGE/
  241.    HELP PANELS' below.
  242.  
  243.    EGA users:  The default MS-DOS palette attributes are restored if the EGA
  244.            BIOS fails to store data in the Parameter Save Area. Old EGAs
  245.            may store invalid data in this area, resulting in an improper
  246.            restoration of the video attributes (use the DOS command MODE
  247.            CO80 to restore the default attributes).
  248.  
  249.  
  250.    SWITCH BCn±
  251.    ~~~~~~~~~~~
  252.    Adjust screen brightness contrast (SVGA/VGA).  The brightness change step
  253.    is specified by the sign and value of number {n} ranging from -63 to +63.
  254.  
  255.     /BC-n    For 0 < {n} < 64: Decrease the brightness of the screen,
  256.         reducing the contrast of the display.
  257.  
  258.     /BC+n    For 0 < {n} < 64: Increase the brightness of the screen,
  259.         reducing the saturation of the display.
  260.  
  261.     /BC0    Restore screen to its original brightness as dictated by
  262.         the settings of the monitor.  Clears the screen.
  263.  
  264.    Brightness changes are additive. Repeated use of the switch or the use of
  265.    large step numbers yields unreadable screens; use /BC0 to restore display
  266.    contrast.  (Switch BC is a sticky parameter, as brightness changes remain
  267.    in effect even if BLANKs were made quiescent or uninstalled.)
  268.  
  269.    Defaults:  /B = /BC = /BC+ = /BC+2, /B- = /BC- = /BC-2.
  270.  
  271.  
  272.  * SWITCH CV±
  273.    ~~~~~~~~~~
  274.    Verification of program commands. If a password for screen unblanking has
  275.    been selected (see switch PW), switch CV± controls whether or not a user-
  276.    defined password must be checked before any command (other than switch ?)
  277.    can be implemented.
  278.  
  279.     /CV-    Disable command verification.
  280.  
  281.     /CV+    [Re]Enable command verification.
  282.  
  283.    Defaults:  /C = /CV = /CV+; no switch on installation = /CV-.
  284.  
  285.  
  286.  * SWITCH DF±
  287.    ~~~~~~~~~~
  288.    Enables/disables a brief click every 1.3 minutes after a screen blanking,
  289.    when parking of the hard disk(s) is attempted.
  290.  
  291.     /DF-    Disable disk parking feedback.
  292.  
  293.     /DF+    [Re]Enable hard disk parking feedback.
  294.  
  295.    Defaults: /DF = /DF+; no switch on installation = /DF+.
  296.  
  297.  
  298.  * SWITCH DP±
  299.    ~~~~~~~~~~
  300.    Enables/disables the parking of the hard disk(s) upon the manual or timed
  301.    blanking of the screen.  Moves the disk head to the highest disk cylinder
  302.    for each physical disk that can be accessed via interrupt-13h calls (BIOS
  303.    disk services).  Parking is inhibited when BIOS-mediated disk or diskette
  304.    activity is in progress at the time of blanking.
  305.  
  306.     /DP-    Disable disk parking.
  307.  
  308.     /DP+    [Re]Enable hard disk parking.
  309.  
  310.    If BLANKs is installed in a machine lacking hard disks, parking should be
  311.    disabled at the time of installation, as a parking attempt may crash some
  312.    machines with poorly designed BIOSes.
  313.  
  314.    NOTE   ------------------------------------------------------------------
  315.        Disk-parking-upon-blanking is not available in a special version
  316.        of BLANKs for diskless machines to avoid potential conflicts.
  317.           ------------------------------------------------------------------
  318.  
  319.    Defaults: /D = /DP = /DP+; no switch on installation = /DP+.
  320.  
  321.  
  322.  * SWITCH EV
  323.    ~~~~~~~~~
  324.    When the *initial* copy of COMMAND.COM is loaded at boot time, it creates
  325.    a block of memory that will contain the master or global DOS environment.
  326.    The environment of DOS consists of a number of text-based variables, each
  327.    variable consisting of a name and an associated string having the format:
  328.  
  329.             VARIABLE=string of characters
  330.  
  331.    in which the end of the string is marked by a zero byte.  The environment
  332.    contains a series of such variables, and the end of the environment block
  333.    itself is indicated by an additional zero byte.  These variables are used
  334.    to pass information to and from COMMAND.COM (or a DOS shell replacement),
  335.    batch files, and application programs, such as the PATH= and the COMSPEC=
  336.    variables.
  337.  
  338.    Switch EV creates or, if it already exists, updates the environment-block
  339.    variable:
  340.             BLANKS=/SWITCH1/SWITCH2.../SWITCHn
  341.  
  342.    where /SWITCH1.../SWITCHn are the command switches to be implemented when
  343.    the program is executed from the DOS command line or a batch file without
  344.    any arguments.  Although switch EV itself is incorporated in the variable
  345.    as well, it is ignored when such variable is used to provide input to the
  346.    program.  (See 'ENVIRONMENT VARIABLE BLANKS' for more details.)
  347.  
  348.    Default:  /E = /EV.
  349.  
  350.  
  351.    SWITCH HK±?xn
  352.    ~~~~~~~~~~~~~
  353.    Hotkey switch. In addition to timed screen blanking, BLANKs allows manual
  354.    blanking of the video by pressing hotkey combination.  The default hotkey
  355.    combination is <Ctrl-B> in the distributed version of the program, but it
  356.    can be changed with this switch in the case of a key-assignment conflict.
  357.    Once the screen has been blanked via the hotkey (manual blanking), it can
  358.    only be unblanked by pressing any key.
  359.  
  360.    BLANKs erases the hotkey from the keyboard buffer so it is not displayed.
  361.    However, a program executed after BLANKs is loaded could save the hotkey;
  362.    this is what happens, for example, with some word processors in which the
  363.    hotkey needs to be erased from the text.
  364.  
  365.     /HK-    Disable hotkey operation.
  366.  
  367.     /HK+    [Re]Enable hotkey operation.
  368.  
  369.     /HK?    Permit selection of a new hotkey combination including
  370.         an alphanumeric key, and one or more of the shift keys
  371.         <Ctrl>, <Alt>, <left-Shift>, and <right-Shift>.
  372.  
  373.      *    /HKxn    Select {xn} as the hotkey combination, in which {x} is
  374.         a alphanumeric character (0-9 or A-Z) only, and {n} is
  375.         a digit between 4 and 15 only.  This digit corresponds
  376.         to one of the following shifting keys or their sum:
  377.  
  378.             1 = <right-Shift>   --------------------------
  379.             2 = <left-Shift>     Values higher than 15 or
  380.             4 = <Ctrl>           lower than 4 are invalid
  381.             8 = <Alt>           --------------------------
  382.  
  383.    For obvious reasons, <Ctrl> or <Alt>, or both, must be part of a new hot-
  384.    key combination either in switch HK? or HKxn.  If a hotkey other than the
  385.    default combination is needed routinely, it may be useful to store in the
  386.    DOS environment the variable 'BLANKS=/HKxn' (see below).
  387.  
  388.    Defaults: /H = /HK = /HK+; no switch on installation = /HKB4 /HK+.
  389.  
  390.  
  391.  * SWITCH LH
  392.    ~~~~~~~~~
  393.    Loads the resident in the Upper Memory Area (UMA), between addresses 640
  394.    KB and 1,024 KB of memory; this is the region below the 1-MB boundary of
  395.    the memory accessible by 086 CPUs, but above the 640-KB hardware barrier
  396.    of MS-DOS.  The switch requires an available upper memory block (UMB) of
  397.    about 1 KB, which is allocated by the program itself either via a direct
  398.    XMS request or, if MS-DOS controls UMB allocation (i.e. DOS 5+ linked to
  399.    the UMA through the command 'DOS=UMB' in the CONFIG.SYS file), via calls
  400.    to DOS. Allocation of UMBs requires the presence of an XMS manager (XMM)
  401.    supporting the UMB services 10h-11h of XMS 2+, and (if the XMM lacks the
  402.    capability of remapping memory) the presence of an UMB provider.
  403.  
  404.    SWITCH LHn
  405.  
  406.    A lower upper-memory limit for the UMB loading can also be requested via
  407.    switch LHn, in which {n} is a four-digit hexadecimal number between A000
  408.    (640 KB) and FF00 (1,020 KB), in order to avoid or select specific areas
  409.    of upper memory.
  410.  
  411.    SWITCH LHn@
  412.  
  413.    A lower-memory resident marker can also be installed along with the UMB
  414.    resident via switch LH@ or LHn@; the marker occupies 144 bytes of lower
  415.    conventional memory, can be identified in some memory mapping utilities
  416.    by the name
  417.                 BLANKs @ UMB
  418.  
  419.    and is released from memory when the UMB resident is uninstalled.  This
  420.    marker may be used (1) to remind that the resident is already installed
  421.    in upper memory, (2) to help locate the UMB installation address in the
  422.    case of some mapping utilities, and (3) to help avoid removal conflicts
  423.    when lower and upper-memory residents are interspersed.
  424.  
  425.    Defaults:  Low-memory installation if any error is found during the UMB
  426.    loading; high-memory installation below lower-address limit if UMBs are
  427.    not available above such limit.  /L = /LH.
  428.  
  429.  
  430.    SWITCH MA±
  431.    ~~~~~~~~~~
  432.    Enables and disables the monitoring of Mouse activity compatible with the
  433.    Microsoft/Logitech mouse driver format.  Applications use different mouse
  434.    programming styles, of which the most common are: calls to interrupt 33h,
  435.    a software interface set up and serviced by the mouse driver, and a user-
  436.    defined mouse event handler, which functions as a mouse interrupt service
  437.    dedicated to those particular mouse events (e.g. right button pressed, no
  438.    mouse motion, etc) defined by the requesting application.
  439.  
  440.      *    /MA+    Enable global mouse monitoring (i.e. INT-33h calls and user-
  441.         handler calls, and allowing mouse-mediated screen blanking);
  442.         this is default status if a mouse driver (Microsoft/Logitech
  443.         compatible format) is found to be ACTIVE when the program is
  444.         installed.
  445.  
  446.      *    /MA-    Disable global mouse monitoring; this is the default status
  447.         if a mouse driver (Microsoft/Logitech compatible format) is
  448.         found to be INACTIVE when the program is installed.
  449.  
  450.     /MI+    Enable monitoring of INT-33h mouse function calls only.
  451.  
  452.     /MI-    Disable monitoring of INT-33h mouse function calls only.
  453.  
  454.      *    /MH+    Enable mouse monitoring of user-handler calls only.
  455.  
  456.      *    /MH-    Disable monitoring of user-handler mouse calls only.
  457.  
  458.      *    /MB+    Enable mouse-mediated screen blanking; defaults to blanking
  459.         when the right mouse button is clicked and the mouse points
  460.         to the upper-left corner of the screen.  Also:
  461.  
  462.  
  463.          *    /MBR@L    Blank screen if the RIGHT mouse button is clicked
  464.             and the pointer is at the LEFT-upper screen corner.
  465.  
  466.          *    /MBL@L    Blank screen if the LEFT  mouse button is clicked
  467.             and the pointer is at the LEFT-upper screen corner.
  468.  
  469.          *    /MBB@L    Blank screen if a mouse button is clicked and the
  470.             pointer is at the LEFT-upper screen corner.
  471.  
  472.          *    /MBR@R    Blank screen if the RIGHT mouse button is clicked
  473.             and the pointer is at the RIGHT-upper screen corner.
  474.  
  475.          *    /MBL@R    Blank screen if the LEFT  mouse button is clicked
  476.             and the pointer is at the RIGHT-upper screen corner.
  477.  
  478.          *    /MBB@R    Blank screen if a mouse button is clicked and the
  479.             pointer is at the RIGHT-upper screen corner.
  480.  
  481.      *    /MB-    Disable mouse-mediated screen blanking.
  482.  
  483.     NOTE ---------------------------------------------------------------
  484.           The monitoring of INT-33h function calls ignores functions #1
  485.           ('Show Pointer') and #2 ('Hide Pointer') of the mouse driver.
  486.          ---------------------------------------------------------------
  487.  
  488.    The selected type of mouse activity avoids timed screen blankings.  If the
  489.    mouse-handler monitoring is enabled and a password is not not required for
  490.    unblanking, keyboard activity or mouse motion unblanks the screen.
  491.  
  492.    Starting with release 4.13, BLANKs mouse awareness can be enabled not only
  493.    when installing the program (if an active mouse driver is also installed),
  494.    but after it has become resident as well. The latter feature allows BLANKs
  495.    to become mouse-aware in cases when a mouse driver is installed just prior
  496.    the execution of mouse-based applications.  The following example is based
  497.    on a batch file fragment, where the driver is being loaded and unloaded by
  498.    the command-line driver load utility LOAD (available from the author):
  499.  
  500.         @Echo Off
  501.         LOAD [path]MOUSE.SYS    ; installs the mouse driver
  502.         BLANKS /MA+        ; make mouse aware, get INT 33h
  503.         <application filename>    ; mouse-aware/based program
  504.         BLANKS /MA-         ; mouse unaware, unhook INT 33h
  505.         LOAD /U MS$MOUSE    ; uninstall the mouse driver
  506.         ...
  507.  
  508.    It is very important that BLANKs be made mouse unaware (switch MA-) if the
  509.    mouse driver is unloaded from memory, since switch MA+ captures the vector
  510.    (i.e., address) of INT 33h and this vector will point to empty memory once
  511.    the mouse driver is uninstalled.
  512.  
  513.    Defaults: /M= /MA = /MA+ = /MI+ /MH+ /MBR@L+; /M- = /MA- = /MI- /MH- /MB-;
  514.    /MI = /MI+; /MH = /MH+ = /MH+/MBr@l; /MB[+] = /MB+ = /MB+/MBr@l; no switch
  515.    on installation = /MH+ /MBr@l.
  516.  
  517.  
  518.  * SWITCH PA±
  519.    ~~~~~~~~~~
  520.    Controls audio feedback during the checking of the password (see switch CV
  521.    and PW). If enabled, the feedback generates a short bell beep each time an
  522.    invalid or erroneous key is pressed during password verification.
  523.  
  524.     /PA-    Disable password audio feedback.
  525.  
  526.     /PA+    [Re]Enable password audio feedback.
  527.  
  528.    Defaults: /PA = /PA+; no switch on installation = /PA+.
  529.  
  530.  
  531.    SWITCH PV±
  532.    ~~~~~~~~~~
  533.    Controls video feedback during the checking of the password (see switch CV
  534.    and PW).  If enabled, the feedback displays a <■> each time a valid key is
  535.    pressed during password verification.
  536.  
  537.     /PV-    Disable password video feedback
  538.  
  539.     /PV+    [Re]Enable password video feedback.
  540.  
  541.    Defaults: /PV = /PV+; no switch on installation = /PV-.
  542.  
  543.  
  544.    SWITCH PW±?x
  545.    ~~~~~~~~~~~~
  546.    The switch controls password-mediated unblanking.  A selected sequence of
  547.    1 to 15 nonshifted, alphanumeric characters, followed by <Enter>, must be
  548.    must be typed in correct sequence to unblank the screen after it has been
  549.    blanked manually (i.e., via the hotkey).  Rebooting via <Ctrl-Alt-Del> is
  550.    suppressed.
  551.  
  552.    NOTE   ------------------------------------------------------------------
  553.        Even when password checking is enabled, a password is not needed
  554.        to unblank the screen after a TIMED blanking.
  555.       ------------------------------------------------------------------
  556.  
  557.      *    /PW-    Disable password unblanking.
  558.  
  559.      *    /PW+    Re-enable use of the resident password (if a password has
  560.         not been loaded, the video will unblank only when <Enter>
  561.         is pressed).
  562.  
  563.      *    /PWx    Specify the password from the DOS command line, which <x>
  564.         is a string of 1 to 15 nonshifted, alphanumeric (0-9 A-Z)
  565.         characters.  Specification of the password via switch PWx
  566.         does not enable or disable password checking.
  567.  
  568.     /PW?    Request to specify a new password of up to 15 nonshifted,
  569.         alphanumeric characters only. After these characters have
  570.         been typed, press <Enter> to make this password resident;
  571.         press <Esc> or <Break> to avoid changing the password and
  572.         quit to DOS.  The typed characters can be erased with the
  573.         <Backspace> key. Specification of the password via switch
  574.         PW? does not enable or disable password checking.
  575.  
  576.    NOTE   ------------------------------------------------------------------
  577.        If <Enter> is pressed before any valid character is typed during
  578.        switch /PW? interactive selection, unblanking of manual blanking
  579.        of the video will occur only after pressing the <Enter> key.
  580.       ------------------------------------------------------------------
  581.  
  582.    If password checking on unblanking is enabled (PW+), further commands via
  583.    switches PW±, PWx and PW? triggers a prospective password checking before
  584.    such commands can be implemented to avoid unauthorized password changes.
  585.  
  586.    Defaults: /PW = /PW+; no switch on installation = /PW-.
  587.  
  588.  
  589.    SWITCH /QU
  590.    ~~~~~~~~~~
  591.    If loaded, the resident becomes quiescent until the next execution of the
  592.    program, except if switch /QU or /? were specified at such time.
  593.  
  594.    Default: /Q = /QU.
  595.  
  596.  
  597.  * SWITCH RK±
  598.    ~~~~~~~~~~
  599.    In many cases when the keyboard interrupt (which is triggered whenever a
  600.    key is pressed or released) is not shared by ill-behaved applications or
  601.    subsequently loaded residents, switch RK permits restoration of keyboard
  602.    access to avoid being locked out from screen unblanking were blanking to
  603.    occur.
  604.  
  605.    Switch /RK+ or /RK- must be specified before installing the resident for
  606.    the keyboard-access monitoring module to be part of the BLANKs resident;
  607.    this increases the resident size by 48 bytes.
  608.  
  609.    Do not use this switch unless you experienced an unblanking lockout with
  610.    an application that does not chain to the hardware keyboard interrupt 9,
  611.    thus excluding residents from access to keyboard input.
  612.  
  613.    If the prescribed method to revector (i.e., hook) the keyboard interrupt
  614.    were used by such a program, the dynamic keyboard-access monitoring code
  615.    attempts to change the revectoring, so that the resident may still chain
  616.    to the keyboard.  Be aware, however, that if an ill-behaved program were
  617.    not follow such a method, this switch would not provide keyboard access;
  618.    see 'OPERATION REQUIREMENTS & CONFLICTS' below on how to avoid a lockout
  619.    in these cases.
  620.  
  621.     /RK-    Disable dynamic keyboard-access monitoring.
  622.  
  623.     /RK+    [Re]Enable dynamic keyboard-access monitoring.
  624.  
  625.    Switch RK+ should be used with caution, because conflicts may arise with
  626.    programs that do not follow prescribed methods of interrupt revectoring,
  627.    in some cases even crashing the system. (Use RK+ sparingly and issue RK-
  628.    as soon as possible once the offending program terminates.)
  629.  
  630.    NOTE   -----------------------------------------------------------------
  631.       Read 'OPERATION REQUIREMENTS & CONFLICTS' for resident unloading
  632.       constraints once switch RK+ is used, in order to avoid problems!
  633.       -----------------------------------------------------------------
  634.  
  635.    Defaults: /RK = RK+; invalid switch after resident installation.
  636.  
  637.  
  638.    SWITCH TBn
  639.    ~~~~~~~~~~
  640.    Timed blanking period in minutes.  This is the interval that the program
  641.    waits before blanking the screen in the absence of keyboard, video (BIOS
  642.    mediated), or mouse (INT-33h mediated) activity.
  643.  
  644.     /TBt    Enable a period of 5 seconds for testing purposes.
  645.  
  646.     /TB0    Disable timed blanking.
  647.  
  648.     /TB1-60    Enable timed blanking after an inactivity period of between
  649.         1 and 60 minutes; a selection of 61 or more defaults to 60.
  650.  
  651.    Defaults:  /T = /TB = /TB3; no switch on installation = /TB3.
  652.  
  653.  
  654.    SWITCH UL
  655.    ~~~~~~~~~
  656.    Uninstalls the resident code from memory.  This request is disregarded if
  657.    the address of any of the interrupts intercepted by the resident has been
  658.    modified since the program was installed, since the revectoring indicates
  659.    another resident has subsequently hooked the same interrupt(s). Thus, the
  660.    program cannot be uninstalled, because this would leave such interrupt(s)
  661.    pointing to empty memory, and the program would then crash.
  662.  
  663.    The program should be uninstalled only if it is the last resident to have
  664.    been installed. In practice, however, it can also be uninstalled when any
  665.    subsequently installed resident intercepts different interrupts; although
  666.    increasing the fragmentation of memory, the resulting "hole" is innocuous 
  667.    and can be used by DOS for other purposes (e.g., an environment block).
  668.  
  669.    Default: /U = /UL.
  670.  
  671.  
  672.    SWITCH V1
  673.    ~~~~~~~~~
  674.    BLANKs configures its settings on-the-fly for the video adapter type that
  675.    is detected at the time the program is executed. This switch reconfigures
  676.    the program parameters to satisfy the selected video adapter type for the
  677.    primary or active video system (or the only system if no other adapter is
  678.    present).
  679.  
  680.     /V1M    MDA configuration: IBM Monochrome Display Adapter and, in
  681.         text mode only, HERCULES adapters HGC, HGC+, InColor etc.
  682.         The MDA configuration does not restore a graphics mode in
  683.         the HERCULES card.  Uses and restores bit 3 of video port
  684.         3B8h, but forces bits 7 and 1 to 0.
  685.  
  686.     /V1H    HGA configuration: HERCULES adapters (HGC, HGC+, InColor)
  687.         in text or graphics mode, but not in CGA emulation.  Uses
  688.         and restores register 6 of video port 3B5h.
  689.  
  690.     /V1C    CGA configuration: IBM Color Graphics Adapter, MultiColor
  691.         Graphics Array [MCGA], and compatible adapters.  Uses and
  692.         restores bits 0-3 of port 3D9h and bit 3 of port 3D8h.
  693.  
  694.     /V1E    EGA configuration: IBM Enhanced Graphics Adapter and EGA-
  695.         compatible cards.  Resets video ports 3BAh and 3DAh. Uses
  696.         and restores bit 5 of port 3C0h.
  697.  
  698.     /V1V    VGA configuration: IBM Video Graphics Array and compatible
  699.         adapters.  Uses video port 3C4h, and uses and restores bit
  700.         5 of port 3C5h.
  701.  
  702.     /V1-    Ignore prior forced configuration.  Uses the configuration
  703.         selected by BLANKs for the adapter detected at the time of
  704.         (each) execution.
  705.  
  706.    Switch V1 does not need to be used unless you want to modify the settings
  707.    of the program (read the following notice on adapter compatibility).
  708.  
  709.    NOTE    -----------------------------------------------------------------
  710.         Proper blanking may not occur with some video adapters that are
  711.         not compatible with the corresponding IBM adapter "standard" at
  712.         the register level. Erratic adapter operation may occur in such
  713.         cases, and the program should not be used.
  714.            -----------------------------------------------------------------
  715.  
  716.    BLANKs release 3.15 and higher assumes that a CGA whose ROM BIOS contains
  717.    the letters 'COMPAQ' is a monochrome COMPAQ card; if you wish to override
  718.    this assumption, switch V1C forces a CGA color configuration.
  719.  
  720.    Default: /V = /V1.
  721.  
  722.  
  723.  * SWITCH V2
  724.    ~~~~~~~~~
  725.    BLANKs configures its settings on-the-fly for the video adapter type that
  726.    is detected at the time the program is executed. This switch reconfigures
  727.    the program parameters to satisfy the selected video adapter type for the
  728.    secondary or inactive video system (if one is present).
  729.  
  730.     /V2N    Ignore the presence of a secondary (or inactive) adapter.
  731.  
  732.     /V2M    MDA configuration: IBM Monochrome Display Adapter and, in
  733.         text mode only, HERCULES adapters HGC, HGC+, InColor etc.
  734.         The MDA configuration does not restore a graphics mode in
  735.         the HERCULES card.  Uses and restores bit 3 of video port
  736.         3B8h, but forces bits 7 and 1 to 0.
  737.  
  738.     /V2H    HGA configuration: HERCULES adapters (HGC, HGC+, InColor)
  739.         in text or graphics mode, but not in CGA emulation.  Uses
  740.         and restores register 6 of video port 3B5h.
  741.  
  742.     /V2C    CGA configuration: IBM Color Graphics Adapter, MultiColor
  743.         Graphics Array [MCGA], and compatible adapters.  Uses and
  744.         restores bits 0-3 of port 3D9h and bit 3 of port 3D8h.
  745.  
  746.     /V2E    EGA configuration: IBM Enhanced Graphics Adapter and EGA-
  747.         compatible cards.  Resets video ports 3BAh and 3DAh. Uses
  748.         and restores bit 5 of port 3C0h.
  749.  
  750.     /V2V    VGA configuration: IBM Video Graphics Array and compatible
  751.         adapters.  Uses video port 3C4h, and uses and restores bit
  752.         5 of port 3C5h.
  753.  
  754.     /V2-    Ignore prior forced configuration.  Uses the configuration
  755.         selected by BLANKs for the adapter detected at the time of
  756.         (each) execution.
  757.  
  758.    See Switch V1 above for notes and comments.  No defaults.
  759.  
  760.  
  761.  * SWITCH WA
  762.    ~~~~~~~~~
  763.    WINDOWS 3.x awareness. If this switch is specified before installing the
  764.    resident, the resident monitors interrupt 2Fh for the initialization and
  765.    exit broadcasts of WINDOWS (386-Enhanced and Standard modes only). Then,
  766.    BLANKs automatically becomes inactive when WINDOWS is ready to start up,
  767.    becoming active again when WINDOWS ends (and standard DOS operations are
  768.    ready to resume).  Switch WA increases the resident size by 32 bytes.
  769.  
  770.    Defaults: /W = /WA; invalid switch after resident installation.
  771.  
  772.  
  773.  
  774.    COMMENTS
  775.  
  776.    The comments may be added in the command line after the desired switches
  777.    and must be preceded by a semicolon.  Such comments, which may be useful
  778.    in clarifying batch files, are ignored by the program.
  779.  
  780.    Do not use the redirection and pipe characters in the comments since DOS
  781.    will attempt to implement the implied redirection or pipe request.
  782.  
  783.  
  784.  
  785.    STATUS/USAGE/HELP PANELS
  786.  
  787.    Executing the program with switch /? selected allows access to the Status/
  788.    Usage and Help panels. (If a Mouse pointing device driver, compatible with
  789.    the Microsoft Mouse driver version 6.0 or higher is loaded and active, all
  790.    of the services provided by these panels can also be activated by pointing
  791.    the mouse to specific areas of the screen and clicking either button.  The
  792.    mouse driver state is saved prior to the display, to be restored later, if
  793.    sufficient memory is available for the panel display.)
  794.  
  795.    The STATUS/USAGE panel, which is shown first, describes status information
  796.    for the resident and its services.  If the program has not been installed,
  797.    pressing key <F3> or <D> shows the default installation parameters.  If it
  798.    is installed, pressing key <F3> or <T> yields a 1-second blanking interval
  799.    for testing purposes; the original interval is restored once the screen is
  800.    unblanked by a keypress.
  801.  
  802.    The USAGE subpanel shows a menu for the command switches: To cycle between
  803.    the main and the auxiliary menu, press key <F2> or <M>, or click the mouse
  804.    upon the screen button labelled <Menu>.  If the resident is installed, the
  805.    status of some 'on/off' command switches is displayed by '+' or '-' before
  806.    a given menu entry.
  807.  
  808.    Press key <F7>, or <X>, or click the mouse upon the screen button labelled
  809.    <Exit> to return to the DOS-prompt command line.
  810.  
  811.    The HELP panel provides a summary description of the program and commands,
  812.    and is displayed if key <F1> or <H> is pressed from the Status/Usage panel
  813.    (or if the mouse is clicked upon the screen button labelled <Help>). Press
  814.    the keypad cursor keys (Home/End, PgUp/PgDn, arrows) to scroll the display
  815.    down or up or the key <S> to scroll in a closed loop; alternatively, click
  816.    the mouse upon the Up/Down arrows at the top right corner of the screen to
  817.    scroll.  Press key <F1> to skip the brief program summary and position the
  818.    text on the Usage section directly.
  819.  
  820.    A beating icon to the left of the preceding USAGE panel controls the speed
  821.    of screen scrolling of the HELP panel via key <S> or the mouse arrows.  By
  822.    positioning the mouse pointer over the beating heart and clicking the left
  823.    or right mouse button, the rate of scrolling can be respectively increased
  824.    or decreased; the scrolling rate can also be changed by clicking the mouse
  825.    on the icon that becomes visible on the top line of the HELP panel (if the
  826.    mouse driver is installed).
  827.  
  828.    Press key <Esc> or <F2>, or click the mouse upon the rightmost icon at the
  829.    top left corner of the screen, to return to the Status/Usage panel.  Press
  830.    key <F7> or <X>, or click the mouse upon the leftmost icon, to exit to the
  831.    DOS-prompt command line.
  832.  
  833.  
  834.  
  835.    THE ENVIRONMENT VARIABLE BLANKS
  836.  
  837.    When the program is executed from the command line of DOS or a batch file
  838.    without an argument, it searches the DOS environment block for a variable
  839.    named 'BLANKS' having the format:
  840.  
  841.             BLANKS=/SWITCH1/SWITCH2 .... /SWITCHn
  842.  
  843.    Up to 128 characters are allowed after the equal sign. This string can be
  844.    incorporated to the environment block via the 'SET' command of DOS or via
  845.    switch EV of this program (see above).
  846.  
  847.    The variable can be used to specify a BLANKs default configuration (e.g.,
  848.    /DP-/HK/HKB4/PW-), which can be restored just by executing BLANKs without
  849.    an argument after a temporary change of parameters.
  850.  
  851.    While the SET command modifies the current DOS environment block, whether
  852.    it is the global or a local one, switch EV only modifies the global block
  853.    (even when the program is executed via a secondary COMMAND.COM, as in the
  854.    case of shelling out to DOS from an application).   Notice that the local
  855.    environment block is only a copy of the global block and lacks sufficient
  856.    room to increase significantly the length of a variable, and that changes
  857.    made to a local environment are not inherited by the global one.
  858.  
  859.    When searching for the environment variable, the program uses the current
  860.    DOS environment block, whether it is the global or a local one.
  861.  
  862.  
  863.  
  864.    5. INSTALLATION IN UPPER MEMORY
  865.  
  866.    This section describes in more detail aspects of the active (i.e., self-
  867.    loading) or passive (e.g. via DOS LOADHIGH) installation of the resident
  868.    in the upper memory region.
  869.  
  870.  
  871.    UMA SELF-LOADING
  872.  
  873.    The utility can self-install the resident in the upper memory area (UMA),
  874.    that is, RAM addresses between 640 KB and 1,024 KB, via switch LH (or its
  875.    subfunctions LHn, LH@, and LHn@).
  876.  
  877.    The allocation of UMA blocks (UMBs) is arbitrated by an XMS manager (XMM)
  878.    version 2.0 or higher; the XMM must be installed prior to the UMB-loading
  879.    of the resident.  Allocation also requires the remapping of UMA addresses
  880.    by a UMB provider, when such a task is not implemented by the XMM itself.
  881.  
  882.    The XMM HIMEM.SYS and the UMB-provider EMM386.EXE are distributed with MS
  883.    DOS 5+.  The allocation of UMBs is controlled by DOS when these 2 drivers
  884.    are installed, and the command 'dos=umb' is added to the CONFIG.SYS file.
  885.    With DR-DOS 6+, UMB remapping and XMS support are provided by EMM386.SYS.
  886.    Other 386-specific memory managers, of course, also provide UMB remapping
  887.    and XMS support.  All XMMs require MS-DOS version 3 or later.
  888.  
  889.    Switch LHn, where A000 ≤ n ≤ FFFF (hexadecimal), allows the specification
  890.    of a minimum upper-memory limit for the UMB to avoid UMA regions having a
  891.    very slow access time (or to preserve regions with a fast access time for
  892.    other utilities that require faster times, such as a disk cache or screen
  893.    accelerator), or to avoid fragmentation of the UMA when UMB allocation is
  894.    not controlled by MS-DOS 5+, but by the XMM itself. The fragmentation may
  895.    occur when the XMM allocates blocks on a first-fit basis, i.e., the first
  896.    available UMB having the lowest UMA address is allocated, irrespective of
  897.    whether or not a (smaller) block matching the requested size is available
  898.    at a higher UMA address.  Unless the size of the available UMBs increases
  899.    with increasing memory address, first-fit allocation of a small UMB leads
  900.    to the breaking of large UMA blocks into smaller ones, thus hampering the
  901.    UMB installation of larger residents.
  902.  
  903.    If MS-DOS 5+ controls UMB allocation, the program enforces the allocation
  904.    of the resident block on a best-fit basis when {n} is not specified, that
  905.    is, all available blocks are searched (by DOS), and the one matching most
  906.    closely the size requested is allocated.
  907.  
  908.    When DOS controls UMB allocation and {n} is specified, UMBs are allocated
  909.    on a first-fit basis.  While this may contribute to UMA fragmentation, it
  910.    allows for the checking of a minimum memory limit in those cases in which
  911.    the selection or avoidance of a specific UMA region is more important.
  912.  
  913.    Hence, compared to the upper-memory loading provided by the LH command of
  914.    MS-DOS 5+, the HILOAD command of DR-DOS 5+, or a similar service provided
  915.    by other memory managers, self-loading into a UMB has several advantages,
  916.    including: (1) it does not require an initial free UMB of the size of the
  917.    entire program (as opposed to the size of its resident only), (2) it does
  918.    allow user control on the selection of the upper-memory block, and (3) it
  919.    can help reduce UMA fragmentation.
  920.  
  921.    NOTE  -------------------------------------------------------------------
  922.      The address and size of available UMBs can be obtained with MEM.EXE
  923.      (when DOS controls UMB allocation) or via the memory manager itself
  924.      (when the allocation is controlled by 386-specific memory managers.
  925.      In either case, such data can also be obtained with UMAX.EXE, a UMA
  926.      mapping utility that is distributed by the author.
  927.      -------------------------------------------------------------------
  928.  
  929.  
  930.    UMA LOADING VIA MEMORY MANAGERS, DR-DOS 5+, or MS-DOS 5+
  931.  
  932.    The resident can also be installed in the UMA via a 386-memory manager or
  933.    DR-DOS 5+/MS-DOS 5+ commands (e.g., HILOAD, LH, etc), provided that there
  934.    is a sufficiently large, free UMB for the actual size of the entire file,
  935.    and any for additional memory that may be required by the loading service
  936.    itself.
  937.  
  938.    Please note that, to minimize disk storage, the program is distributed as
  939.    a compressed EXE file that expands on execution by a factor of 2 or less.
  940.    Thus, the difference between the actual size upon loading and the nominal
  941.    directory size may create conflicts with UMA-loading services that do not
  942.    measure actual size: If the available upper memory were smaller than that
  943.    required by the decompressed file but larger than the nominal (directory)
  944.    size, such service would attempt to load the compressed file.  Of course,
  945.    the subsequent file decompression would overwrite the adjacent memory and
  946.    likely crash the memory manager or DOS!
  947.  
  948.    When attempting to load the resident in a UMB via a memory manager or DOS
  949.    5+, do NOT request in the same command line switches that result in panel
  950.    displays.  These displays require an additional 8,000 bytes of *adjacent*
  951.    free memory, and the free RAM measuring procedure used by the program can
  952.    be negated by UMA-loading services that do not update the program segment
  953.    prefix (PSP) of the program being loaded. Such switches are PW?, HK?, and
  954.    /?.
  955.  
  956.  
  957.    IDENTIFICATION IN MEMORY MAPS
  958.  
  959.    If the resident has been loaded in lower conventional memory, the program
  960.    can be identified by name in usage maps yielded by various memory mapping
  961.    utilities.  Although the program sheds its own copy of the environment at
  962.    installation time (to minimize the resident size), the name
  963.  
  964.                 BLANKs n.nn.n
  965.  
  966.    will appear in the command line listing for the resident, irrespective of
  967.    the actual content of the DOS command line at the time of loading; n.nn.n
  968.    are the major and minor program version, and the revision number.
  969.  
  970.    However, when UMB loading is mediated by the XMS directly (e.g., extended
  971.    memory manager and DOS versions 2-4, or MS-DOS 5+ not linked to the upper
  972.    memory) and the resident is selfloaded via switch LH, many memory mapping
  973.    programs do not list the allocated block, or lump it with other allocated
  974.    blocks, or fail to reveal the name of the resident. If the identification
  975.    of the UMB resident is necessary, use switch LH@ or LHn@ to load in lower
  976.    RAM a small resident marker that shows up in most memory maps.
  977.  
  978.    If the UMB allocation is controlled by MS-DOS 5+, the UMB resident can be
  979.    identified with some mapping utilities (e.g., MEM.EXE of MS-DOS) although
  980.    it is listed as "Data" instead of "Program."  Other mapping utilities can
  981.    identify the UMB resident when its associated lower-memory marker is also
  982.    loaded (see switch LH@).
  983.  
  984.  
  985.  
  986.    6.  TECHNICAL INFORMATION
  987.  
  988.    INTERRUPTS
  989.  
  990.    Whenever certain conditions occur, either within a program or the system,
  991.    it becomes necessary for the processor to interrupt its current operation
  992.    and execute one of a group of special routines.  The action that triggers
  993.    the execution of such a routine is referred to as an interrupt; there are
  994.    internal interrupts, in response to a state of the CPU or an instruction,
  995.    and external interrupts, caused by signals sent to the CPU from elsewhere
  996.    in the system.
  997.  
  998.    When the program is waiting for keyboard (or mouse) user input during its
  999.    Status/Usage/Help display, it invokes repeatedly the 'idle' interrupts of
  1000.    DOS: INT 28h and, if running under MS-DOS 5+, function 1680h of INT 2Fh,
  1001.    if this function indicates that it can process program suspension.
  1002.  
  1003.    INT 28h permits potential background activation of (some) other residents
  1004.    while INT 2Fh/1680h permits MS-DOS 5+ to suspend the program temporarily,
  1005.    and transfer control to another program.
  1006.  
  1007.    The program also intercepts several interrupts,
  1008.  
  1009.         INT 08h - Timer hardware
  1010.         INT 09h - Keyboard hardware
  1011.         INT 10h - BIOS video services
  1012.         INT 11h - BIOS equipment data
  1013.         INT 13h - BIOS disk services
  1014.         INT 21h - DOS system services
  1015.         INT 2Fh - DOS multiplex services
  1016.         INT 33h - (Microsoft/Logitech) Mouse services
  1017.  
  1018.  
  1019.    Interrupt 8h is triggered about 18.2 times/second by channel 0 of the 8253
  1020.    /8254 timer chip (IRQ0) so the system can update its time-of-day count; it
  1021.    is monitored by the resident for its timed blanking service.
  1022.  
  1023.    Interrupt 9h is triggered by the keyboard when a key has been depressed or
  1024.    released; it is monitored by the resident for screen unblanking and manual
  1025.    (hotkey) blanking services.
  1026.  
  1027.    Interrupt 10h implements BIOS video input/output services; screen blanking
  1028.    is suppressed during video activity, but the activity does not unblank the
  1029.    screen once blanking has occurred.
  1030.  
  1031.    Interrupt 11h provides a 32-bit datum on the BIOS equipment configuration;
  1032.    it is used by the program to determine whether its resident is installed.
  1033.  
  1034.    Interrupt 13h implements BIOS disk input/output services; the disk parking
  1035.    is suppressed during disk activity. NOTE: Interrupt 13h is not intercepted
  1036.    in a special version of BLANKs, which is smaller than the standard version
  1037.    by ca. 100 bytes in the resident size.
  1038.  
  1039.    Interrupt 21h is the major interface for DOS functions; it is monitored by
  1040.    the resident for INT-9h revectoring requests.
  1041.  
  1042.    Interrupt 2Fh provides a motley of services for MS-DOS, WINDOWS, and third
  1043.    party applications; the resident monitors this interrupt for the so-called
  1044.    initialization and exit broadcasts of WINDOWS 3.x 386-Enhanced or Standard
  1045.    mode.
  1046.  
  1047.    Interrupt 33h is the interface for the (Microsoft/Logitech) implementation
  1048.    of calls to the Mouse driver; the interrupt is claimed by the Mouse driver
  1049.    during its initialization, and it is used by most mouse-aware programs.
  1050.  
  1051.  
  1052.    BYPASSING INTERRUPTS
  1053.  
  1054.    BLANKs bypasses interrupt 8 when a timed blanking period of 0 minutes has
  1055.    been specified (/TB0). Interrupt 9 is bypassed only when switches TB0 and
  1056.    HK- (see above) have been selected. If switch HK- has been selected along
  1057.    with a nonzero time period (TB1 through TB60), only the hotkey service of
  1058.    interrupt 9 is bypassed.  BIOS interrupts 10h and 13h can not be bypassed
  1059.    by any command switch, while interrupt 33h can be bypassed by switch MA-.
  1060.    This information may be of use for testing potential conflicts with other
  1061.    resident programs.
  1062.  
  1063.  
  1064.    DOS ERRORLEVELS
  1065.  
  1066.    Upon completion, the program passes an errorlevel value which can be used
  1067.    to check (via ERRORLEVEL commands in a batch file) the outcome of program
  1068.    execution.  The following errorlevels may be passed:
  1069.  
  1070.          Value   Nature of Error
  1071.          -----   ------------------------------------
  1072.            255   Cyclical redundancy check failure
  1073.            255   CPU type cannot execute 286+ version
  1074.            255   DOS version 1 or 2.x encountered
  1075.  
  1076.            128   XMM not installed/XMS error in UMB load
  1077.             64   Error updating environment variable
  1078.             32   Invalid password format
  1079.             16   Invalid hotkey combination
  1080.              8   Unknown video adapter
  1081.              4   Unable to uninstall resident
  1082.              2   Invalid switch request
  1083.              1   User <CTRL-BREAK> keypress
  1084.              0   Successful execution
  1085.  
  1086.    Some conditions generating errorlevels 1 through 128 may be additive, and
  1087.    the resulting error value may represent more than a single error.
  1088.  
  1089.  
  1090.  
  1091.    7.  OPERATION REQUIREMENTS & CONFLICTS
  1092.  
  1093.    BLANKs will fail to operate properly when access to interrupts 8 and 9 is
  1094.    denied by another program or resident loaded after BLANKs. This can occur
  1095.    with ill-behaved programs that take over the interrupts and fail to chain
  1096.    the information to those other utilities tapping the same interrupts (see
  1097.    TECHNICAL INFORMATION section), such as some WYSIWYG word processors, GUI
  1098.    systems, etc.
  1099.  
  1100.  
  1101.    KEYBOARD-UNBLANKING LOCKOUT
  1102.  
  1103.    In particular, if access to interrupt 9 is denied, keyboard activity will
  1104.    fail to unblank a blanked screen; when testing for incompatibilities with
  1105.    a given program, make sure that programs voiding the manual blanking when
  1106.    the hotkey is pressed, will still permit unblanking of the screen after a
  1107.    timed blanking.
  1108.  
  1109.    If the unblanking lockout occurs, switch RK± may be used (provided it was
  1110.    specified before installing the resident) as in the following batch file:
  1111.  
  1112.         @Echo Off
  1113.         BLANKS /RK+        ; keyboard access monitoring ON
  1114.         <application>        ; ill-behaved program
  1115.         BLANKS /RK-        ; keyboard access monitoring OFF
  1116.         ...
  1117.  
  1118.    If this switch cannot avoid the problem, inactivate the timed blanking as
  1119.    discussed for WINDOWS (see below).
  1120.  
  1121.  
  1122.    RESIDENT UNLOADING & SWITCH RK
  1123.  
  1124.    In the rather unlikely case that such ill-behaved program were a resident
  1125.    (loaded after BLANKs), the loading sequence must be scrupulously reversed
  1126.    during the unloading of the residents once switch RK+ has been issued:
  1127.  
  1128.    (i)    If the program can uninstall itself, unload it before BLANKs because
  1129.     otherwise you may be unable to unload either one.
  1130.  
  1131.    (ii)    If the program cannot uninstall itself and a TSR-removal utility was
  1132.     used to place a wedge in memory before the program was loaded (so it
  1133.     can be removed), use this utility to unload it before BLANKs because
  1134.     otherwise you will crash the system.
  1135.  
  1136.  
  1137.    WINDOWS 3.X
  1138.  
  1139.    BLANKs is not designed to operate under Microsft WINDOWS 3; starting with
  1140.    version 4.13, BLANKs becomes inactive when WINDOWS 3.x (386-enhanced mode
  1141.    or Standard mode) starts up and active when WINDOWS ends, provided switch
  1142.    WA was specified before loading the resident.  For other WINDOWS modes or
  1143.    versions, WIN.EXE may be started via a batch file with the following:
  1144.  
  1145.         @Echo Off
  1146.         ...
  1147.         [path]BLANKS /TB0 /HK-        ; inactivate blanker
  1148.         [path]WIN            ; run Windows
  1149.         [path]BLANKS [/switches]    ; reactivate blanker
  1150.         ...
  1151.  
  1152.    To monitor mouse activity, BLANKs must be installed after a mouse driver
  1153.    compatible with the Microsoft/Logitech driver format has been installed.
  1154.    In addition, starting with revision 4.13, the BLANKs resident can become
  1155.    mouse-aware after its installation (see switch MA for usage comments).
  1156.  
  1157.    Since the BIOS video services are comparatively slow, many programs write
  1158.    directly to video memory instead of using the BIOS services. Because such
  1159.    video writes are not detected by BLANKs, screen blanking may occur during
  1160.    during the video activity of such programs. Similarly, any mouse activity
  1161.    implemented by commands that bypass interrupt 33h will not avoid blanking
  1162.    of the screen (as in the case of some desktop publishing programs).
  1163.  
  1164.  
  1165.  
  1166.    8.  COPYRIGHT & LICENSE INFORMATION
  1167.  
  1168.    This documentation, programs, and other files distributed in this software
  1169.    package (the "Software")  are the copyrighted property of FM de Monasterio
  1170.    (the "Author"), who provides the Software and licenses its use. All rights
  1171.    are reserved.
  1172.  
  1173.    The Software is not sold.  A license fee is required to use this Software.
  1174.    This license does not transfer to you either the ownership of or the title
  1175.    to the Software, which remain the property of the Author.  A form required
  1176.    to license the Software is provided in the enclosed file BLANKS.REG.
  1177.  
  1178.  
  1179.    SINGLE USER LICENSE.  Grants you use of this Software in a single computer
  1180.    at a time; the Software may be transferred to another computer, as long as
  1181.    it is used only in 1 computer at any time; under the license, the Software
  1182.    may NOT be installed on a network server.
  1183.  
  1184.    SITE/15-PCs LICENSE.  Grants you use of this Software in a sigle site or a
  1185.    set of sites, as long as the Software is not used in more than 15 machines
  1186.    at a time, and that such machines are located exclusively within the site.
  1187.    Licenses for more machines are available at discounted prices.
  1188.  
  1189.    SOFTWARE BUNDLING LICENSE.  Please write to the Author.
  1190.  
  1191.    REFUNDS POLICY.  If a problem notified within ninety (90) days of shipping
  1192.    of the registered copy cannot be solved, the registration fee (but not the
  1193.    shipping costs) will be refunded upon receiving a written request with the
  1194.    original diskette(s) enclosed.
  1195.  
  1196.    UPGRADE POLICY.  Program upgrades are limited to licensed users.  Upgrades
  1197.    within the same major version (e.g. release 4.00 through 4.99) are free of
  1198.    charge when a self-addressed, stamped, 5.25" diskette mailer with a 360-KB
  1199.    diskette is included with the request. Other upgrades are charged half the
  1200.    (single-user/site) registration fee.  See the enclosed file BLANKS.UPG.
  1201.  
  1202.  
  1203.    U.S. GOVERNMENT INFORMATION
  1204.  
  1205.    The Software is Commercial Computer Software under the Federal Acquisition
  1206.    Regulations of the U.S. government and the Agency Supplements to them. The
  1207.    Software is provided to the Federal Government and its agencies only under
  1208.    the Restricted Rights Provisions of the above noted regulations applicable
  1209.    to commercial software developed at private expense, and not in the public
  1210.    domain. The use, duplication, or disclosure of the Software by the Federal
  1211.    Government or its agencies is subject to the restrictions set forth in the
  1212.    subdivision (c.1.ii) of the Rights in Technical Data and Computer Software
  1213.    clause at DFARS 252.227-7013 (October 1988) and FAR 52.227-19 (June 1987).
  1214.  
  1215.  
  1216.    9.  DISTRIBUTION TERMS
  1217.  
  1218.    You may distribute the Software, but you are specifically prohibited from:
  1219.  
  1220.     - Charging fees or asking donations in exchange of or payment
  1221.       for copies of this Software.
  1222.  
  1223.     - Distributing this Software with commercial products without
  1224.       the written, express permission in advance from the author.
  1225.  
  1226.     - Distributing this Software via a for-profit organization or
  1227.       group, either alone or with other software.
  1228.  
  1229.     - Changing any of the contents of this Software including the
  1230.       copyright notice and license information.
  1231.  
  1232.    You may not disassemble or otherwise reverse engineer the Software.  Other
  1233.    uses of the Software are prohibited without a written authorization signed
  1234.    by the Author.
  1235.  
  1236.    Latest program releases may be found at the Information Exchange BBS (703)
  1237.    836-0748, as a compressed archive file.
  1238.  
  1239.  
  1240.    WARRANTY DISCLAIMER FOR UNREGISTERED COPIES
  1241.  
  1242.    The information contained in the documentation for the Software is subject
  1243.    to change without notice.
  1244.  
  1245.    The Author cannot and does not warrant that any functions contained in the
  1246.    Software will meet your requirements, or that its operations will be error
  1247.    free.  The entire risk as to the Software performance or quality, or both,
  1248.    is solely with the user and not the Author.  You assume responsibility for
  1249.    the selection of the Software to achieve your intended results and for the
  1250.    installation, use, and results obtained from the Software.
  1251.  
  1252.    The Author makes no warranty, either implied or expressed, including with-
  1253.    out limitation any warranty with respect to this Software documented here,
  1254.    its quality, performance, or fitness for a particular purpose. In no event
  1255.    shall the Author be liable to you for damages, whether direct or indirect,
  1256.    incidental, special, or consequential arising out the use of or any defect
  1257.    in the Software, even if the Author has been advised of the possibility of
  1258.    such damages, or for any claim by any other party.
  1259.  
  1260.    All other warranties of any kind, either express or implied, including but
  1261.    not limited to the implied warranties of merchantability and fitness for a
  1262.    particular purpose, are expressly excluded.
  1263.  
  1264.    By using the Software, you acknowledge (1) to have read and understood all
  1265.    parts of this document and (2) to have agreed with and accepted all of its
  1266.    terms and provisions without any reservation.
  1267.  
  1268.    For information on the terms of the Limited Warranty for licensed Software
  1269.    copies or any other information on this program, please write to:
  1270.  
  1271.                 FM de Monasterio
  1272.                 P.O. Box 219
  1273.                 Cabin John, MD 20818-0219
  1274.                 USA
  1275.  
  1276.     ┌─────────────────────────────────────────────────────────────┐
  1277.     │ Trademarked names are the property of the respective owners │
  1278.     └─────────────────────────────────────────────────────────────┘
  1279.  [End]
  1280.